// packageFT/guide/order/order.js
const app = getApp()
import { formatDate } from '../../../utils/util'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    list: [],
    active: 0,
    // 请求参数对象
    queryObj:{
      page: 1,
      page_size: 5
    },
    // 总数量，用来实现分页
    total: 0,
    // 是否正在请求数据
    isloading: false,
    finished: false
  },

  /**
   * 选项卡切换
   * @param {Object} e 
   */
  tabChange: function(e) {
    const { name } = e.detail
    this.setData({
      'queryObj.page': 1,
      total : 0,
      isloading : false,
      list : [],
      finished: false,
      active: name
    })
    this.getOrders()
  },

  /**
   * 获取订单列表
   */
  getOrders: function(callBack) {
    const urlStr = app.getNetAddresss('plugin.guide.frontend.order.guide')
    const { active, queryObj } = this.data
    let data = {...queryObj}
    if (active != 0 ) {
      data.tab = active
    }
    const _this = this
    wx.showLoading({ title: '数据加载中...' })
    app._postNetWork({
      url: urlStr,
      data,
      success: function(res) {
        const resData = res.data
        if (resData.result == 1) {
          // 列表总数
          _this.setData({ total: resData.data.total })
          const resList = resData.data.data
          resList.forEach(item => {
            const startStr = formatDate(new Date(item.start_at.replace(/-/g, '/')))
            const endStr = formatDate(new Date(item.finish_at.replace(/-/g, '/')))
            // 出行天数
            const day = Math.floor((new Date(item.finish_at.replace(/-/g, '/')) - new Date(item.start_at.replace(/-/g, '/')))/1000/60/60/24)  + 1
            // 出行时间
            item.timeRange = `${startStr}~${endStr}(${day}天)`
            // 数据类型：1-寻找导游，2-酒店订单
            item.type = 1
          })
          _this.setData({
            list: [..._this.data.list, ...resList],
            finished: _this.data.queryObj.page * _this.data.queryObj.page_size >= _this.data.total
          })
        } else {
          app.tips(resData.msg || '数据获取失败！')
        }
      },
      complete: function() {
        wx.hideLoading()
        _this.setData({ isLoading: false })
        callBack && callBack()
      }
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getOrders()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.setData({
      'queryObj.page': 1,
      total : 0,
      isloading : false,
      list : [],
      finished: false
    })
    this.getOrders(() => wx.stopPullDownRefresh())
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    if (this.data.queryObj.page * this.data.queryObj.page_size >= this.data.total){
      wx.showLoading({
        title: '数据加载完毕！',
      })
      wx.hideLoading() // 关闭loading
      return
    }
    if(this.data.isLoading) return
    this.setData({
      // 让页码值自增 +1
      page: this.data.queryObj.page += 1
    })
    // 重新获取列表数据
    this.getOrders()
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})